home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / tegl_c.exe / lha / TEGLSYS.ZIP / TEGLSYS.H < prev    next >
Text File  |  1990-06-29  |  42KB  |  1,421 lines

  1. /*---------------------------------------------------------------------------*
  2.  |               TEGL Windows ToolKit II                 |
  3.  |          Copyright (C) 1990, TEGL Systems Corporation             |
  4.  |                All Rights Reserved.                 |
  5.  *---------------------------------------------------------------------------*/
  6. /* teglcond.h                          */
  7. /* conditional defines and compatability defines      */
  8.  
  9. /* only define one of these for the compiler */
  10. #define TURBOC
  11. /* #define QUICKC */
  12.  
  13. #ifdef TURBOC
  14. #ifdef QUICKC
  15. #error Can only define one compiler.
  16. #endif
  17. #endif
  18.  
  19. #ifndef TURBOC
  20. #ifndef QUICKC
  21. #error No compiler defined.
  22. #endif
  23. #endif
  24.  
  25. /* #define TRACE */
  26. #ifdef TRACE
  27. #define trace(fmt,itm)     printf(fmt,itm); getch()
  28. #else
  29. #define trace(fmt,itm)
  30. #endif
  31.  
  32.  
  33. /* define to build the demonstrator version of the library */
  34.  
  35. #define TEGLDEMO
  36.  
  37.  
  38. /* define if the virtual memory manager is NOT to be used  */
  39.  
  40. /* #define NOVIRT */
  41.  
  42. /* define if the graphics libraries from TURBO C or QUICK C are */
  43. /* not to be used. */
  44.  
  45. /* #define NOGR */
  46.  
  47. /* common defines */
  48.  
  49. #define MK_FP(seg,ofs)    ((void far *) \
  50.                (((unsigned long)(seg) << 16) | (unsigned)(ofs)))
  51.  
  52. #ifdef QUICKC
  53.  
  54. #define random( max ) ((rand() % (int)((max) - (0))) + (0) + 1)
  55. #define poke(a,b,c)  (*((int far*) MK_FP((a),(b))) = (int) (c))
  56.  
  57. #define sound( n )
  58. #define nosound()
  59. #define delay( n )
  60. /* TURBO C's and QUICK C's dos.h are largely compatible */
  61. /* just a few name changes are required.  */
  62.  
  63. #define time  dostime_t
  64. #define gettime  _dos_gettime
  65. #define ti_sec     second
  66.  
  67. #define dfree  diskfree_t
  68. #define df_avail  avail_clusters
  69. #define df_total  total_clusters
  70. #define df_bsec   bytes_per_sector
  71. #define df_sclus  sectors_per_cluster
  72. #define findnext  _dos_findnext
  73.  
  74. #define WILDCARDS 0x01
  75. #define EXTENSION 0x02
  76. #define FILENAME  0x04
  77. #define DIRECTORY 0x08
  78. #define DRIVE      0x10
  79.  
  80. #define MAXPATH   80
  81. #define MAXDRIVE  3
  82. #define MAXDIR      66
  83. #define MAXFILE   9
  84. #define MAXEXT      5
  85.  
  86. #define FA_RDONLY    0x01        /* Read only attribute */
  87. #define FA_HIDDEN    0x02        /* Hidden file */
  88. #define FA_SYSTEM    0x04        /* System file */
  89. #define FA_LABEL    0x08        /* Volume label */
  90. #define FA_DIREC    0x10        /* Directory */
  91. #define FA_ARCH     0x20        /* Archive */
  92.  
  93. #endif
  94.  
  95. #ifndef FALSE
  96. #define FALSE 0
  97. #define TRUE  1
  98. #endif
  99.  
  100.  
  101. #ifdef QUICKC
  102. #ifndef NOGR
  103. #define MSGRAPH
  104. #endif
  105. #endif
  106.  
  107. /* make sure demo defines are correct */
  108.  
  109. #ifdef TEGLDEMO
  110.  
  111. #ifndef NOVIRT
  112. #define NOVIRT
  113. #endif
  114.  
  115. #ifdef TURBOC
  116. #ifdef NOGR
  117. #undef NOGR
  118. #endif
  119. #endif
  120.  
  121. #endif
  122. /* extendc.c */
  123.  
  124. extern char *fexpand (char *ipath);
  125.  
  126. extern void dos_getpath(unsigned char drive, char far *pathname);
  127.  
  128. extern int appendwildcards(char *FilePath);
  129.  
  130.  
  131. /*  fastgrph.c */
  132.  
  133. #define A_ "\xc1"
  134. #define B_ "\xc2"
  135. #define C_ "\xc3"
  136. #define D_ "\xc4"
  137. #define E_ "\xc5"
  138. #define F_ "\xc6"
  139. #define G_ "\xc7"
  140. #define H_ "\xc8"
  141. #define I_ "\xc9"
  142. #define J_ "\xca"
  143. #define K_ "\xcb"
  144. #define L_ "\xcc"
  145. #define M_ "\xcd"
  146. #define N_ "\xce"
  147. #define O_ "\xcf"
  148. #define P_ "\xd0"
  149. #define Q_ "\xd1"
  150. #define R_ "\xd2"
  151. #define S_ "\xd3"
  152. #define T_ "\xd4"
  153. #define U_ "\xd5"
  154. #define V_ "\xd6"
  155. #define W_ "\xd7"
  156. #define X_ "\xd8"
  157. #define Y_ "\xd9"
  158. #define Z_ "\xda"
  159.  
  160.  
  161. typedef void (far *vmode)(void);
  162.  
  163. typedef unsigned masktype[2][16];
  164.  
  165. typedef void (*fontptr)();
  166.  
  167. typedef struct vidid {
  168.      unsigned char  video0type;
  169.      unsigned char  display0type;
  170.  
  171.      unsigned char  video1type;
  172.      unsigned char  display1type;
  173. } vidid;
  174.  
  175. #define FGNORM    0x00
  176. #define FGAND    0x08
  177. #define FGOR    0x10
  178. #define FGXOR    0x18
  179. #define FGNOT    0x80
  180.  
  181. #define TG_MDA           0x01
  182. #define TG_CGA           0x02
  183. #define TG_EGA           0x03
  184. #define TG_MCGA        0x04
  185. #define TG_VGA           0x05
  186. #define TG_HGC           0x80
  187. #define TG_HGCPLUS       0x81
  188. #define TG_INCOLOR       0x82
  189.  
  190. #define TG_MDADISPLAY       0x01
  191. #define TG_CGADISPLAY       0x02
  192. #define TG_EGACOLORDISPLAY 0x03
  193. #define TG_PS2MONODISPLAY  0x04
  194. #define TG_PS2COLORDISPLAY 0x05
  195.  
  196. extern unsigned jagged;
  197. extern unsigned rmwbits;
  198. extern unsigned activepage;
  199. extern unsigned mousecolor;
  200. extern unsigned mousehotspot_xofs;
  201. extern unsigned mousehotspot_yofs;
  202. extern unsigned teglfillmask;
  203.  
  204. extern char videochoicescga640x200x2;
  205. extern char videochoicesega640x350x16;
  206. extern char videochoicesvga640x480x16;
  207. extern char videochoicesherc720x348x2;
  208. extern unsigned char propagatedpixel[16];
  209. extern char proportionalfont;
  210. extern int initdrivercode;
  211.  
  212. typedef unsigned far (*teglgrfunc01)(unsigned,unsigned);
  213. typedef unsigned far (*teglgrfunc02)(unsigned,unsigned,void*);
  214. typedef unsigned long far (*teglgrfunc03)(unsigned,unsigned,unsigned,unsigned);
  215.  
  216. typedef void far (*teglgrproc01)(unsigned,unsigned,unsigned,unsigned,unsigned);
  217. typedef void far (*teglgrproc02)(unsigned,unsigned,unsigned);
  218. typedef void far (*teglgrproc03)(unsigned,unsigned,void*,unsigned);
  219. typedef void far (*teglgrproc04)(unsigned,unsigned,unsigned,unsigned,void*);
  220. typedef void far (*teglgrproc05)(unsigned,unsigned,unsigned,unsigned,void*,void*);
  221. typedef void far (*teglgrproc06)(unsigned,unsigned,void*,void*);
  222. typedef void far (*teglgrproc07)(unsigned,unsigned,unsigned,unsigned);
  223. typedef void far (*teglgrproc08)(void);
  224. typedef void far (*teglgrproc09)(unsigned,unsigned);
  225.  
  226. extern teglgrfunc01 getpixs;
  227. extern teglgrfunc02 extractpixs;
  228. extern teglgrfunc03 bigimagesize;
  229. extern teglgrproc01 fastline;
  230. extern teglgrproc02 putpixs;
  231. extern teglgrproc03 putbiti;
  232. extern teglgrproc04 getbiti;
  233. extern teglgrproc05 extractimg;
  234. extern teglgrproc06 overlayimg;
  235. extern teglgrproc07 teglwrtchar;
  236. extern teglgrproc08 mcursoroff;
  237. extern teglgrproc09 mcursoron;
  238. extern teglgrproc09 msetpos;
  239.  
  240. /*
  241. extern unsigned getpixs(unsigned x, unsigned y);
  242. extern unsigned extractpixs(unsigned x, unsigned y, void * buffer);
  243. extern unsigned long bigimagesize(unsigned x,unsigned y,unsigned x1,unsigned y1);
  244. extern void fastline(unsigned x, unsigned y, unsigned x1, unsigned y2, unsigned n);
  245. extern void putpixs(unsigned x, unsigned y, unsigned n);
  246. extern void putbiti(unsigned x, unsigned y, void * buffer, unsigned rmwbits);
  247. extern void getbiti(unsigned x, unsigned y, unsigned x1, unsigned y1, void * buffer);
  248. extern void extractimg(unsigned x, unsigned y, unsigned x1, unsigned y1, void * buff1, void * buff2);
  249. extern void overlayimg(unsigned x, unsigned y, void * buff1, void * buff2);
  250. extern void teglwrtchar(int c,int x,int y,int color);
  251. extern void mcursoroff(void);
  252. extern void mcursoron(unsigned xpos,unsigned ypos);
  253. extern void msetpos(unsigned xpos,unsigned ypos);
  254. */
  255.  
  256. extern void putpict(unsigned x, unsigned y, unsigned char *buf, unsigned n);
  257.  
  258. extern void pictsize(unsigned * w, unsigned * h, unsigned char *buf);
  259.  
  260. extern void swapbytes(void * buff1, void * buff2, long bytestoswap);
  261.  
  262. extern int teglcharwidth(int  c);
  263.  
  264. extern int teglcharheight(void);
  265.  
  266. extern void videoid(vidid far * v);
  267.  
  268.  
  269. extern int tegltextwidth(char * mystr);
  270.  
  271. extern void outtegltextxy(int x,int y,char *mystr);
  272.  
  273. extern void fmttegltextxy(int x, int y, char *format,...);
  274.  
  275. #define setproportional(onoff) proportionalfont = onoff
  276.  
  277. #define setteglfont(f) fonttable = f
  278.  
  279.  
  280. extern void xorcornerbox(int x, int y, int x1, int y1, int color);
  281.  
  282. extern void xorbox(int x, int y, int x1, int y1, int color);
  283.  
  284. extern void flipapage(void);
  285.  
  286. extern void flipvpage(void);
  287.  
  288. extern void setapage(unsigned pagenum);
  289.  
  290. extern void setvpage(unsigned pagenum);
  291.  
  292. extern unsigned videopage(void);
  293.  
  294. extern void abort_msg(char * msg);
  295.  
  296.  
  297. extern void ega640x350x16(void);
  298.  
  299. extern void vga640x480x16(void);
  300.  
  301. extern void herc720x348x2(void);
  302.  
  303. extern void cga640x200x2(void);
  304.  
  305. extern void videoautodetect(void);
  306.  
  307. extern char * videomodestring(char vtype, char dtype);
  308.  
  309. extern void setvideochoices(unsigned v, char accept);
  310.  
  311.  
  312. extern fontptr fonttable;
  313.  
  314. extern unsigned evgagetpixs(unsigned x,unsigned y);
  315. extern unsigned evgaextractpixs(unsigned x,unsigned y,void * buffer);
  316. extern unsigned long evgaimagesize(unsigned x,unsigned y,unsigned x1,unsigned y1);
  317. extern void evgafastline(unsigned x,unsigned y,unsigned x1,unsigned y2,unsigned